//
// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.2.8-b130911.1802 生成的
// 请访问 <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
// 在重新编译源模式时, 对此文件的所有修改都将丢失。
// 生成时间: 2019.03.12 时间 12:12:00 PM CST 
//


package com.youhome.service.listhub;

import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlSchemaType;
import javax.xml.bind.annotation.XmlType;
import javax.xml.datatype.XMLGregorianCalendar;


/**
 * <p>DetailedCharacteristicsType complex type的 Java 类。
 * 
 * <p>以下模式片段指定包含在此类中的预期内容。
 * 
 * <pre>
 * &lt;complexType name="DetailedCharacteristicsType">
 *   &lt;complexContent>
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       &lt;sequence>
 *         &lt;element name="Appliances" minOccurs="0">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="Appliance" type="{http://rets.org/xsd/RETSCommons}ApplianceEnum" maxOccurs="unbounded"/>
 *                 &lt;/sequence>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *         &lt;element name="ArchitectureStyle" type="{http://rets.org/xsd/RETSCommons}ArchitecturalStyleEnum" minOccurs="0"/>
 *         &lt;element name="HasAttic" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
 *         &lt;element name="HasBarbecueArea" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
 *         &lt;element name="HasBasement" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
 *         &lt;element name="BuildingUnitCount" type="{http://www.w3.org/2001/XMLSchema}integer" minOccurs="0"/>
 *         &lt;element name="IsCableReady" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
 *         &lt;element name="HasCeilingFan" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
 *         &lt;element name="CondoFloorNum" type="{http://www.w3.org/2001/XMLSchema}integer" minOccurs="0"/>
 *         &lt;element name="CoolingSystems" minOccurs="0">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="CoolingSystem" type="{http://rets.org/xsd/RETSCommons}CoolingSystemEnum" maxOccurs="unbounded"/>
 *                 &lt;/sequence>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *         &lt;element name="HasDeck" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
 *         &lt;element name="HasDisabledAccess" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
 *         &lt;element name="HasDock" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
 *         &lt;element name="HasDoorman" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
 *         &lt;element name="HasDoublePaneWindows" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
 *         &lt;element name="HasElevator" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
 *         &lt;element name="ExteriorTypes" minOccurs="0">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="ExteriorType" type="{http://rets.org/xsd/RETSCommons}ExteriorFinishEnum" maxOccurs="unbounded"/>
 *                 &lt;/sequence>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *         &lt;element name="HasFireplace" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
 *         &lt;element name="FloorCoverings" minOccurs="0">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="FloorCovering" type="{http://rets.org/xsd/RETSCommons}FlooringMaterialEnum" maxOccurs="unbounded"/>
 *                 &lt;/sequence>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *         &lt;element name="HasGarden" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
 *         &lt;element name="HasGatedEntry" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
 *         &lt;element name="HasGreenhouse" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
 *         &lt;element name="HeatingFuels" minOccurs="0">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="HeatingFuel" type="{http://rets.org/xsd/RETSCommons}FuelEnum" maxOccurs="unbounded"/>
 *                 &lt;/sequence>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *         &lt;element name="HeatingSystems" minOccurs="0">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="HeatingSystem" type="{http://rets.org/xsd/RETSCommons}HeatingSystemEnum" maxOccurs="unbounded"/>
 *                 &lt;/sequence>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *         &lt;element name="HasHotTubSpa" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
 *         &lt;element name="Intercom" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
 *         &lt;element name="HasJettedBathTub" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
 *         &lt;element name="HasLawn" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
 *         &lt;element name="LegalDescription" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="HasMotherInLaw" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
 *         &lt;element name="IsNewConstruction" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
 *         &lt;element name="NumFloors" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
 *         &lt;element name="NumParkingSpaces" type="{http://www.w3.org/2001/XMLSchema}integer" minOccurs="0"/>
 *         &lt;element name="ParkingTypes" minOccurs="0">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="ParkingType" type="{http://rets.org/xsd/RETSCommons}ParkingEnum" maxOccurs="unbounded"/>
 *                 &lt;/sequence>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *         &lt;element name="HasPatio" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
 *         &lt;element name="HasPond" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
 *         &lt;element name="HasPool" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
 *         &lt;element name="HasPorch" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
 *         &lt;element name="RoofTypes" minOccurs="0">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="RoofType" type="{http://rets.org/xsd/RETSCommons}RoofMaterialEnum" maxOccurs="unbounded"/>
 *                 &lt;/sequence>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *         &lt;element name="RoomCount" type="{http://www.w3.org/2001/XMLSchema}integer" minOccurs="0"/>
 *         &lt;element name="Rooms" minOccurs="0">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="Room" type="{http://rets.org/xsd/RETSCommons}RoomCategoryEnum" maxOccurs="unbounded"/>
 *                 &lt;/sequence>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *         &lt;element name="HasRVParking" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
 *         &lt;element name="HasSauna" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
 *         &lt;element name="HasSecuritySystem" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
 *         &lt;element name="HasSkylight" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
 *         &lt;element name="HasSportsCourt" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
 *         &lt;element name="HasSprinklerSystem" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
 *         &lt;element name="HasVaultedCeiling" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
 *         &lt;element name="ViewTypes" minOccurs="0">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="ViewType" type="{http://rets.org/xsd/RETSCommons}ViewEnum" maxOccurs="unbounded"/>
 *                 &lt;/sequence>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *         &lt;element name="IsWaterfront" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
 *         &lt;element name="HasWetBar" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
 *         &lt;element name="WhatOwnerLoves" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="IsWired" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
 *         &lt;element name="YearUpdated" type="{http://www.w3.org/2001/XMLSchema}gYear" minOccurs="0"/>
 *         &lt;element name="AdditionalInformation" type="{http://rets.org/xsd/RETSCommons}StringValueDescriptionPairType" maxOccurs="unbounded" minOccurs="0"/>
 *       &lt;/sequence>
 *     &lt;/restriction>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "DetailedCharacteristicsType", namespace = "http://rets.org/xsd/Syndication/2012-03", propOrder = {
    "appliances",
    "architectureStyle",
    "hasAttic",
    "hasBarbecueArea",
    "hasBasement",
    "buildingUnitCount",
    "isCableReady",
    "hasCeilingFan",
    "condoFloorNum",
    "coolingSystems",
    "hasDeck",
    "hasDisabledAccess",
    "hasDock",
    "hasDoorman",
    "hasDoublePaneWindows",
    "hasElevator",
    "exteriorTypes",
    "hasFireplace",
    "floorCoverings",
    "hasGarden",
    "hasGatedEntry",
    "hasGreenhouse",
    "heatingFuels",
    "heatingSystems",
    "hasHotTubSpa",
    "intercom",
    "hasJettedBathTub",
    "hasLawn",
    "legalDescription",
    "hasMotherInLaw",
    "isNewConstruction",
    "numFloors",
    "numParkingSpaces",
    "parkingTypes",
    "hasPatio",
    "hasPond",
    "hasPool",
    "hasPorch",
    "roofTypes",
    "roomCount",
    "rooms",
    "hasRVParking",
    "hasSauna",
    "hasSecuritySystem",
    "hasSkylight",
    "hasSportsCourt",
    "hasSprinklerSystem",
    "hasVaultedCeiling",
    "viewTypes",
    "isWaterfront",
    "hasWetBar",
    "whatOwnerLoves",
    "isWired",
    "yearUpdated",
    "additionalInformation"
})
public class DetailedCharacteristicsType {

    @XmlElement(name = "Appliances")
    protected Appliances appliances;
    @XmlElement(name = "ArchitectureStyle")
    protected ArchitecturalStyleEnum architectureStyle;
    @XmlElement(name = "HasAttic")
    protected Boolean hasAttic;
    @XmlElement(name = "HasBarbecueArea")
    protected Boolean hasBarbecueArea;
    @XmlElement(name = "HasBasement")
    protected Boolean hasBasement;
    @XmlElement(name = "BuildingUnitCount")
    protected BigInteger buildingUnitCount;
    @XmlElement(name = "IsCableReady")
    protected Boolean isCableReady;
    @XmlElement(name = "HasCeilingFan")
    protected Boolean hasCeilingFan;
    @XmlElement(name = "CondoFloorNum")
    protected BigInteger condoFloorNum;
    @XmlElement(name = "CoolingSystems")
    protected CoolingSystems coolingSystems;
    @XmlElement(name = "HasDeck")
    protected Boolean hasDeck;
    @XmlElement(name = "HasDisabledAccess")
    protected Boolean hasDisabledAccess;
    @XmlElement(name = "HasDock")
    protected Boolean hasDock;
    @XmlElement(name = "HasDoorman")
    protected Boolean hasDoorman;
    @XmlElement(name = "HasDoublePaneWindows")
    protected Boolean hasDoublePaneWindows;
    @XmlElement(name = "HasElevator")
    protected Boolean hasElevator;
    @XmlElement(name = "ExteriorTypes")
    protected ExteriorTypes exteriorTypes;
    @XmlElement(name = "HasFireplace")
    protected Boolean hasFireplace;
    @XmlElement(name = "FloorCoverings")
    protected FloorCoverings floorCoverings;
    @XmlElement(name = "HasGarden")
    protected Boolean hasGarden;
    @XmlElement(name = "HasGatedEntry")
    protected Boolean hasGatedEntry;
    @XmlElement(name = "HasGreenhouse")
    protected Boolean hasGreenhouse;
    @XmlElement(name = "HeatingFuels")
    protected HeatingFuels heatingFuels;
    @XmlElement(name = "HeatingSystems")
    protected HeatingSystems heatingSystems;
    @XmlElement(name = "HasHotTubSpa")
    protected Boolean hasHotTubSpa;
    @XmlElement(name = "Intercom")
    protected Boolean intercom;
    @XmlElement(name = "HasJettedBathTub")
    protected Boolean hasJettedBathTub;
    @XmlElement(name = "HasLawn")
    protected Boolean hasLawn;
    @XmlElement(name = "LegalDescription")
    protected String legalDescription;
    @XmlElement(name = "HasMotherInLaw")
    protected Boolean hasMotherInLaw;
    @XmlElement(name = "IsNewConstruction")
    protected Boolean isNewConstruction;
    @XmlElement(name = "NumFloors")
    protected BigDecimal numFloors;
    @XmlElement(name = "NumParkingSpaces")
    protected BigInteger numParkingSpaces;
    @XmlElement(name = "ParkingTypes")
    protected ParkingTypes parkingTypes;
    @XmlElement(name = "HasPatio")
    protected Boolean hasPatio;
    @XmlElement(name = "HasPond")
    protected Boolean hasPond;
    @XmlElement(name = "HasPool")
    protected Boolean hasPool;
    @XmlElement(name = "HasPorch")
    protected Boolean hasPorch;
    @XmlElement(name = "RoofTypes")
    protected RoofTypes roofTypes;
    @XmlElement(name = "RoomCount")
    protected BigInteger roomCount;
    @XmlElement(name = "Rooms")
    protected Rooms rooms;
    @XmlElement(name = "HasRVParking")
    protected Boolean hasRVParking;
    @XmlElement(name = "HasSauna")
    protected Boolean hasSauna;
    @XmlElement(name = "HasSecuritySystem")
    protected Boolean hasSecuritySystem;
    @XmlElement(name = "HasSkylight")
    protected Boolean hasSkylight;
    @XmlElement(name = "HasSportsCourt")
    protected Boolean hasSportsCourt;
    @XmlElement(name = "HasSprinklerSystem")
    protected Boolean hasSprinklerSystem;
    @XmlElement(name = "HasVaultedCeiling")
    protected Boolean hasVaultedCeiling;
    @XmlElement(name = "ViewTypes")
    protected ViewTypes viewTypes;
    @XmlElement(name = "IsWaterfront")
    protected Boolean isWaterfront;
    @XmlElement(name = "HasWetBar")
    protected Boolean hasWetBar;
    @XmlElement(name = "WhatOwnerLoves")
    protected String whatOwnerLoves;
    @XmlElement(name = "IsWired")
    protected Boolean isWired;
    @XmlElement(name = "YearUpdated")
    @XmlSchemaType(name = "gYear")
    protected XMLGregorianCalendar yearUpdated;
    @XmlElement(name = "AdditionalInformation")
    protected List<StringValueDescriptionPairType> additionalInformation;

    /**
     * 获取appliances属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Appliances }
     *     
     */
    public Appliances getAppliances() {
        return appliances;
    }

    /**
     * 设置appliances属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Appliances }
     *     
     */
    public void setAppliances(Appliances value) {
        this.appliances = value;
    }

    /**
     * 获取architectureStyle属性的值。
     * 
     * @return
     *     possible object is
     *     {@link ArchitecturalStyleEnum }
     *     
     */
    public ArchitecturalStyleEnum getArchitectureStyle() {
        return architectureStyle;
    }

    /**
     * 设置architectureStyle属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link ArchitecturalStyleEnum }
     *     
     */
    public void setArchitectureStyle(ArchitecturalStyleEnum value) {
        this.architectureStyle = value;
    }

    /**
     * 获取hasAttic属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isHasAttic() {
        return hasAttic;
    }

    /**
     * 设置hasAttic属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setHasAttic(Boolean value) {
        this.hasAttic = value;
    }

    /**
     * 获取hasBarbecueArea属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isHasBarbecueArea() {
        return hasBarbecueArea;
    }

    /**
     * 设置hasBarbecueArea属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setHasBarbecueArea(Boolean value) {
        this.hasBarbecueArea = value;
    }

    /**
     * 获取hasBasement属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isHasBasement() {
        return hasBasement;
    }

    /**
     * 设置hasBasement属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setHasBasement(Boolean value) {
        this.hasBasement = value;
    }

    /**
     * 获取buildingUnitCount属性的值。
     * 
     * @return
     *     possible object is
     *     {@link BigInteger }
     *     
     */
    public BigInteger getBuildingUnitCount() {
        return buildingUnitCount;
    }

    /**
     * 设置buildingUnitCount属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link BigInteger }
     *     
     */
    public void setBuildingUnitCount(BigInteger value) {
        this.buildingUnitCount = value;
    }

    /**
     * 获取isCableReady属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isIsCableReady() {
        return isCableReady;
    }

    /**
     * 设置isCableReady属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setIsCableReady(Boolean value) {
        this.isCableReady = value;
    }

    /**
     * 获取hasCeilingFan属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isHasCeilingFan() {
        return hasCeilingFan;
    }

    /**
     * 设置hasCeilingFan属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setHasCeilingFan(Boolean value) {
        this.hasCeilingFan = value;
    }

    /**
     * 获取condoFloorNum属性的值。
     * 
     * @return
     *     possible object is
     *     {@link BigInteger }
     *     
     */
    public BigInteger getCondoFloorNum() {
        return condoFloorNum;
    }

    /**
     * 设置condoFloorNum属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link BigInteger }
     *     
     */
    public void setCondoFloorNum(BigInteger value) {
        this.condoFloorNum = value;
    }

    /**
     * 获取coolingSystems属性的值。
     * 
     * @return
     *     possible object is
     *     {@link CoolingSystems }
     *     
     */
    public CoolingSystems getCoolingSystems() {
        return coolingSystems;
    }

    /**
     * 设置coolingSystems属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link CoolingSystems }
     *     
     */
    public void setCoolingSystems(CoolingSystems value) {
        this.coolingSystems = value;
    }

    /**
     * 获取hasDeck属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isHasDeck() {
        return hasDeck;
    }

    /**
     * 设置hasDeck属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setHasDeck(Boolean value) {
        this.hasDeck = value;
    }

    /**
     * 获取hasDisabledAccess属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isHasDisabledAccess() {
        return hasDisabledAccess;
    }

    /**
     * 设置hasDisabledAccess属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setHasDisabledAccess(Boolean value) {
        this.hasDisabledAccess = value;
    }

    /**
     * 获取hasDock属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isHasDock() {
        return hasDock;
    }

    /**
     * 设置hasDock属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setHasDock(Boolean value) {
        this.hasDock = value;
    }

    /**
     * 获取hasDoorman属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isHasDoorman() {
        return hasDoorman;
    }

    /**
     * 设置hasDoorman属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setHasDoorman(Boolean value) {
        this.hasDoorman = value;
    }

    /**
     * 获取hasDoublePaneWindows属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isHasDoublePaneWindows() {
        return hasDoublePaneWindows;
    }

    /**
     * 设置hasDoublePaneWindows属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setHasDoublePaneWindows(Boolean value) {
        this.hasDoublePaneWindows = value;
    }

    /**
     * 获取hasElevator属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isHasElevator() {
        return hasElevator;
    }

    /**
     * 设置hasElevator属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setHasElevator(Boolean value) {
        this.hasElevator = value;
    }

    /**
     * 获取exteriorTypes属性的值。
     * 
     * @return
     *     possible object is
     *     {@link ExteriorTypes }
     *     
     */
    public ExteriorTypes getExteriorTypes() {
        return exteriorTypes;
    }

    /**
     * 设置exteriorTypes属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link ExteriorTypes }
     *     
     */
    public void setExteriorTypes(ExteriorTypes value) {
        this.exteriorTypes = value;
    }

    /**
     * 获取hasFireplace属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isHasFireplace() {
        return hasFireplace;
    }

    /**
     * 设置hasFireplace属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setHasFireplace(Boolean value) {
        this.hasFireplace = value;
    }

    /**
     * 获取floorCoverings属性的值。
     * 
     * @return
     *     possible object is
     *     {@link FloorCoverings }
     *     
     */
    public FloorCoverings getFloorCoverings() {
        return floorCoverings;
    }

    /**
     * 设置floorCoverings属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link FloorCoverings }
     *     
     */
    public void setFloorCoverings(FloorCoverings value) {
        this.floorCoverings = value;
    }

    /**
     * 获取hasGarden属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isHasGarden() {
        return hasGarden;
    }

    /**
     * 设置hasGarden属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setHasGarden(Boolean value) {
        this.hasGarden = value;
    }

    /**
     * 获取hasGatedEntry属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isHasGatedEntry() {
        return hasGatedEntry;
    }

    /**
     * 设置hasGatedEntry属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setHasGatedEntry(Boolean value) {
        this.hasGatedEntry = value;
    }

    /**
     * 获取hasGreenhouse属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isHasGreenhouse() {
        return hasGreenhouse;
    }

    /**
     * 设置hasGreenhouse属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setHasGreenhouse(Boolean value) {
        this.hasGreenhouse = value;
    }

    /**
     * 获取heatingFuels属性的值。
     * 
     * @return
     *     possible object is
     *     {@link HeatingFuels }
     *     
     */
    public HeatingFuels getHeatingFuels() {
        return heatingFuels;
    }

    /**
     * 设置heatingFuels属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link HeatingFuels }
     *     
     */
    public void setHeatingFuels(HeatingFuels value) {
        this.heatingFuels = value;
    }

    /**
     * 获取heatingSystems属性的值。
     * 
     * @return
     *     possible object is
     *     {@link HeatingSystems }
     *     
     */
    public HeatingSystems getHeatingSystems() {
        return heatingSystems;
    }

    /**
     * 设置heatingSystems属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link HeatingSystems }
     *     
     */
    public void setHeatingSystems(HeatingSystems value) {
        this.heatingSystems = value;
    }

    /**
     * 获取hasHotTubSpa属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isHasHotTubSpa() {
        return hasHotTubSpa;
    }

    /**
     * 设置hasHotTubSpa属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setHasHotTubSpa(Boolean value) {
        this.hasHotTubSpa = value;
    }

    /**
     * 获取intercom属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isIntercom() {
        return intercom;
    }

    /**
     * 设置intercom属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setIntercom(Boolean value) {
        this.intercom = value;
    }

    /**
     * 获取hasJettedBathTub属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isHasJettedBathTub() {
        return hasJettedBathTub;
    }

    /**
     * 设置hasJettedBathTub属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setHasJettedBathTub(Boolean value) {
        this.hasJettedBathTub = value;
    }

    /**
     * 获取hasLawn属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isHasLawn() {
        return hasLawn;
    }

    /**
     * 设置hasLawn属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setHasLawn(Boolean value) {
        this.hasLawn = value;
    }

    /**
     * 获取legalDescription属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getLegalDescription() {
        return legalDescription;
    }

    /**
     * 设置legalDescription属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setLegalDescription(String value) {
        this.legalDescription = value;
    }

    /**
     * 获取hasMotherInLaw属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isHasMotherInLaw() {
        return hasMotherInLaw;
    }

    /**
     * 设置hasMotherInLaw属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setHasMotherInLaw(Boolean value) {
        this.hasMotherInLaw = value;
    }

    /**
     * 获取isNewConstruction属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isIsNewConstruction() {
        return isNewConstruction;
    }

    /**
     * 设置isNewConstruction属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setIsNewConstruction(Boolean value) {
        this.isNewConstruction = value;
    }

    /**
     * 获取numFloors属性的值。
     * 
     * @return
     *     possible object is
     *     {@link BigDecimal }
     *     
     */
    public BigDecimal getNumFloors() {
        return numFloors;
    }

    /**
     * 设置numFloors属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link BigDecimal }
     *     
     */
    public void setNumFloors(BigDecimal value) {
        this.numFloors = value;
    }

    /**
     * 获取numParkingSpaces属性的值。
     * 
     * @return
     *     possible object is
     *     {@link BigInteger }
     *     
     */
    public BigInteger getNumParkingSpaces() {
        return numParkingSpaces;
    }

    /**
     * 设置numParkingSpaces属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link BigInteger }
     *     
     */
    public void setNumParkingSpaces(BigInteger value) {
        this.numParkingSpaces = value;
    }

    /**
     * 获取parkingTypes属性的值。
     * 
     * @return
     *     possible object is
     *     {@link ParkingTypes }
     *     
     */
    public ParkingTypes getParkingTypes() {
        return parkingTypes;
    }

    /**
     * 设置parkingTypes属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link ParkingTypes }
     *     
     */
    public void setParkingTypes(ParkingTypes value) {
        this.parkingTypes = value;
    }

    /**
     * 获取hasPatio属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isHasPatio() {
        return hasPatio;
    }

    /**
     * 设置hasPatio属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setHasPatio(Boolean value) {
        this.hasPatio = value;
    }

    /**
     * 获取hasPond属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isHasPond() {
        return hasPond;
    }

    /**
     * 设置hasPond属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setHasPond(Boolean value) {
        this.hasPond = value;
    }

    /**
     * 获取hasPool属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isHasPool() {
        return hasPool;
    }

    /**
     * 设置hasPool属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setHasPool(Boolean value) {
        this.hasPool = value;
    }

    /**
     * 获取hasPorch属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isHasPorch() {
        return hasPorch;
    }

    /**
     * 设置hasPorch属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setHasPorch(Boolean value) {
        this.hasPorch = value;
    }

    /**
     * 获取roofTypes属性的值。
     * 
     * @return
     *     possible object is
     *     {@link RoofTypes }
     *     
     */
    public RoofTypes getRoofTypes() {
        return roofTypes;
    }

    /**
     * 设置roofTypes属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link RoofTypes }
     *     
     */
    public void setRoofTypes(RoofTypes value) {
        this.roofTypes = value;
    }

    /**
     * 获取roomCount属性的值。
     * 
     * @return
     *     possible object is
     *     {@link BigInteger }
     *     
     */
    public BigInteger getRoomCount() {
        return roomCount;
    }

    /**
     * 设置roomCount属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link BigInteger }
     *     
     */
    public void setRoomCount(BigInteger value) {
        this.roomCount = value;
    }

    /**
     * 获取rooms属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Rooms }
     *     
     */
    public Rooms getRooms() {
        return rooms;
    }

    /**
     * 设置rooms属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Rooms }
     *     
     */
    public void setRooms(Rooms value) {
        this.rooms = value;
    }

    /**
     * 获取hasRVParking属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isHasRVParking() {
        return hasRVParking;
    }

    /**
     * 设置hasRVParking属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setHasRVParking(Boolean value) {
        this.hasRVParking = value;
    }

    /**
     * 获取hasSauna属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isHasSauna() {
        return hasSauna;
    }

    /**
     * 设置hasSauna属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setHasSauna(Boolean value) {
        this.hasSauna = value;
    }

    /**
     * 获取hasSecuritySystem属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isHasSecuritySystem() {
        return hasSecuritySystem;
    }

    /**
     * 设置hasSecuritySystem属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setHasSecuritySystem(Boolean value) {
        this.hasSecuritySystem = value;
    }

    /**
     * 获取hasSkylight属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isHasSkylight() {
        return hasSkylight;
    }

    /**
     * 设置hasSkylight属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setHasSkylight(Boolean value) {
        this.hasSkylight = value;
    }

    /**
     * 获取hasSportsCourt属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isHasSportsCourt() {
        return hasSportsCourt;
    }

    /**
     * 设置hasSportsCourt属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setHasSportsCourt(Boolean value) {
        this.hasSportsCourt = value;
    }

    /**
     * 获取hasSprinklerSystem属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isHasSprinklerSystem() {
        return hasSprinklerSystem;
    }

    /**
     * 设置hasSprinklerSystem属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setHasSprinklerSystem(Boolean value) {
        this.hasSprinklerSystem = value;
    }

    /**
     * 获取hasVaultedCeiling属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isHasVaultedCeiling() {
        return hasVaultedCeiling;
    }

    /**
     * 设置hasVaultedCeiling属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setHasVaultedCeiling(Boolean value) {
        this.hasVaultedCeiling = value;
    }

    /**
     * 获取viewTypes属性的值。
     * 
     * @return
     *     possible object is
     *     {@link ViewTypes }
     *     
     */
    public ViewTypes getViewTypes() {
        return viewTypes;
    }

    /**
     * 设置viewTypes属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link ViewTypes }
     *     
     */
    public void setViewTypes(ViewTypes value) {
        this.viewTypes = value;
    }

    /**
     * 获取isWaterfront属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isIsWaterfront() {
        return isWaterfront;
    }

    /**
     * 设置isWaterfront属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setIsWaterfront(Boolean value) {
        this.isWaterfront = value;
    }

    /**
     * 获取hasWetBar属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isHasWetBar() {
        return hasWetBar;
    }

    /**
     * 设置hasWetBar属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setHasWetBar(Boolean value) {
        this.hasWetBar = value;
    }

    /**
     * 获取whatOwnerLoves属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getWhatOwnerLoves() {
        return whatOwnerLoves;
    }

    /**
     * 设置whatOwnerLoves属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setWhatOwnerLoves(String value) {
        this.whatOwnerLoves = value;
    }

    /**
     * 获取isWired属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isIsWired() {
        return isWired;
    }

    /**
     * 设置isWired属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setIsWired(Boolean value) {
        this.isWired = value;
    }

    /**
     * 获取yearUpdated属性的值。
     * 
     * @return
     *     possible object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public XMLGregorianCalendar getYearUpdated() {
        return yearUpdated;
    }

    /**
     * 设置yearUpdated属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public void setYearUpdated(XMLGregorianCalendar value) {
        this.yearUpdated = value;
    }

    /**
     * Gets the value of the additionalInformation property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the additionalInformation property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getAdditionalInformation().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link StringValueDescriptionPairType }
     * 
     * 
     */
    public List<StringValueDescriptionPairType> getAdditionalInformation() {
        if (additionalInformation == null) {
            additionalInformation = new ArrayList<StringValueDescriptionPairType>();
        }
        return this.additionalInformation;
    }


    /**
     * <p>anonymous complex type的 Java 类。
     * 
     * <p>以下模式片段指定包含在此类中的预期内容。
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="Appliance" type="{http://rets.org/xsd/RETSCommons}ApplianceEnum" maxOccurs="unbounded"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "appliance"
    })
    public static class Appliances {

        @XmlElement(name = "Appliance", namespace = "http://rets.org/xsd/Syndication/2012-03", required = true)
        protected List<ApplianceEnum> appliance;

        /**
         * Gets the value of the appliance property.
         * 
         * <p>
         * This accessor method returns a reference to the live list,
         * not a snapshot. Therefore any modification you make to the
         * returned list will be present inside the JAXB object.
         * This is why there is not a <CODE>set</CODE> method for the appliance property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getAppliance().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link ApplianceEnum }
         * 
         * 
         */
        public List<ApplianceEnum> getAppliance() {
            if (appliance == null) {
                appliance = new ArrayList<ApplianceEnum>();
            }
            return this.appliance;
        }

    }


    /**
     * <p>anonymous complex type的 Java 类。
     * 
     * <p>以下模式片段指定包含在此类中的预期内容。
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="CoolingSystem" type="{http://rets.org/xsd/RETSCommons}CoolingSystemEnum" maxOccurs="unbounded"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "coolingSystem"
    })
    public static class CoolingSystems {

        @XmlElement(name = "CoolingSystem", namespace = "http://rets.org/xsd/Syndication/2012-03", required = true)
        protected List<CoolingSystemEnum> coolingSystem;

        /**
         * Gets the value of the coolingSystem property.
         * 
         * <p>
         * This accessor method returns a reference to the live list,
         * not a snapshot. Therefore any modification you make to the
         * returned list will be present inside the JAXB object.
         * This is why there is not a <CODE>set</CODE> method for the coolingSystem property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getCoolingSystem().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link CoolingSystemEnum }
         * 
         * 
         */
        public List<CoolingSystemEnum> getCoolingSystem() {
            if (coolingSystem == null) {
                coolingSystem = new ArrayList<CoolingSystemEnum>();
            }
            return this.coolingSystem;
        }

    }


    /**
     * <p>anonymous complex type的 Java 类。
     * 
     * <p>以下模式片段指定包含在此类中的预期内容。
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="ExteriorType" type="{http://rets.org/xsd/RETSCommons}ExteriorFinishEnum" maxOccurs="unbounded"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "exteriorType"
    })
    public static class ExteriorTypes {

        @XmlElement(name = "ExteriorType", namespace = "http://rets.org/xsd/Syndication/2012-03", required = true)
        protected List<ExteriorFinishEnum> exteriorType;

        /**
         * Gets the value of the exteriorType property.
         * 
         * <p>
         * This accessor method returns a reference to the live list,
         * not a snapshot. Therefore any modification you make to the
         * returned list will be present inside the JAXB object.
         * This is why there is not a <CODE>set</CODE> method for the exteriorType property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getExteriorType().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link ExteriorFinishEnum }
         * 
         * 
         */
        public List<ExteriorFinishEnum> getExteriorType() {
            if (exteriorType == null) {
                exteriorType = new ArrayList<ExteriorFinishEnum>();
            }
            return this.exteriorType;
        }

    }


    /**
     * <p>anonymous complex type的 Java 类。
     * 
     * <p>以下模式片段指定包含在此类中的预期内容。
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="FloorCovering" type="{http://rets.org/xsd/RETSCommons}FlooringMaterialEnum" maxOccurs="unbounded"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "floorCovering"
    })
    public static class FloorCoverings {

        @XmlElement(name = "FloorCovering", namespace = "http://rets.org/xsd/Syndication/2012-03", required = true)
        protected List<FlooringMaterialEnum> floorCovering;

        /**
         * Gets the value of the floorCovering property.
         * 
         * <p>
         * This accessor method returns a reference to the live list,
         * not a snapshot. Therefore any modification you make to the
         * returned list will be present inside the JAXB object.
         * This is why there is not a <CODE>set</CODE> method for the floorCovering property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getFloorCovering().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link FlooringMaterialEnum }
         * 
         * 
         */
        public List<FlooringMaterialEnum> getFloorCovering() {
            if (floorCovering == null) {
                floorCovering = new ArrayList<FlooringMaterialEnum>();
            }
            return this.floorCovering;
        }

    }


    /**
     * <p>anonymous complex type的 Java 类。
     * 
     * <p>以下模式片段指定包含在此类中的预期内容。
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="HeatingFuel" type="{http://rets.org/xsd/RETSCommons}FuelEnum" maxOccurs="unbounded"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "heatingFuel"
    })
    public static class HeatingFuels {

        @XmlElement(name = "HeatingFuel", namespace = "http://rets.org/xsd/Syndication/2012-03", required = true)
        protected List<FuelEnum> heatingFuel;

        /**
         * Gets the value of the heatingFuel property.
         * 
         * <p>
         * This accessor method returns a reference to the live list,
         * not a snapshot. Therefore any modification you make to the
         * returned list will be present inside the JAXB object.
         * This is why there is not a <CODE>set</CODE> method for the heatingFuel property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getHeatingFuel().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link FuelEnum }
         * 
         * 
         */
        public List<FuelEnum> getHeatingFuel() {
            if (heatingFuel == null) {
                heatingFuel = new ArrayList<FuelEnum>();
            }
            return this.heatingFuel;
        }

    }


    /**
     * <p>anonymous complex type的 Java 类。
     * 
     * <p>以下模式片段指定包含在此类中的预期内容。
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="HeatingSystem" type="{http://rets.org/xsd/RETSCommons}HeatingSystemEnum" maxOccurs="unbounded"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "heatingSystem"
    })
    public static class HeatingSystems {

        @XmlElement(name = "HeatingSystem", namespace = "http://rets.org/xsd/Syndication/2012-03", required = true)
        protected List<HeatingSystemEnum> heatingSystem;

        /**
         * Gets the value of the heatingSystem property.
         * 
         * <p>
         * This accessor method returns a reference to the live list,
         * not a snapshot. Therefore any modification you make to the
         * returned list will be present inside the JAXB object.
         * This is why there is not a <CODE>set</CODE> method for the heatingSystem property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getHeatingSystem().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link HeatingSystemEnum }
         * 
         * 
         */
        public List<HeatingSystemEnum> getHeatingSystem() {
            if (heatingSystem == null) {
                heatingSystem = new ArrayList<HeatingSystemEnum>();
            }
            return this.heatingSystem;
        }

    }


    /**
     * <p>anonymous complex type的 Java 类。
     * 
     * <p>以下模式片段指定包含在此类中的预期内容。
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="ParkingType" type="{http://rets.org/xsd/RETSCommons}ParkingEnum" maxOccurs="unbounded"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "parkingType"
    })
    public static class ParkingTypes {

        @XmlElement(name = "ParkingType", namespace = "http://rets.org/xsd/Syndication/2012-03", required = true)
        protected List<ParkingEnum> parkingType;

        /**
         * Gets the value of the parkingType property.
         * 
         * <p>
         * This accessor method returns a reference to the live list,
         * not a snapshot. Therefore any modification you make to the
         * returned list will be present inside the JAXB object.
         * This is why there is not a <CODE>set</CODE> method for the parkingType property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getParkingType().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link ParkingEnum }
         * 
         * 
         */
        public List<ParkingEnum> getParkingType() {
            if (parkingType == null) {
                parkingType = new ArrayList<ParkingEnum>();
            }
            return this.parkingType;
        }

    }


    /**
     * <p>anonymous complex type的 Java 类。
     * 
     * <p>以下模式片段指定包含在此类中的预期内容。
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="RoofType" type="{http://rets.org/xsd/RETSCommons}RoofMaterialEnum" maxOccurs="unbounded"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "roofType"
    })
    public static class RoofTypes {

        @XmlElement(name = "RoofType", namespace = "http://rets.org/xsd/Syndication/2012-03", required = true)
        protected List<RoofMaterialEnum> roofType;

        /**
         * Gets the value of the roofType property.
         * 
         * <p>
         * This accessor method returns a reference to the live list,
         * not a snapshot. Therefore any modification you make to the
         * returned list will be present inside the JAXB object.
         * This is why there is not a <CODE>set</CODE> method for the roofType property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getRoofType().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link RoofMaterialEnum }
         * 
         * 
         */
        public List<RoofMaterialEnum> getRoofType() {
            if (roofType == null) {
                roofType = new ArrayList<RoofMaterialEnum>();
            }
            return this.roofType;
        }

    }


    /**
     * <p>anonymous complex type的 Java 类。
     * 
     * <p>以下模式片段指定包含在此类中的预期内容。
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="Room" type="{http://rets.org/xsd/RETSCommons}RoomCategoryEnum" maxOccurs="unbounded"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "room"
    })
    public static class Rooms {

        @XmlElement(name = "Room", namespace = "http://rets.org/xsd/Syndication/2012-03", required = true)
        protected List<RoomCategoryEnum> room;

        /**
         * Gets the value of the room property.
         * 
         * <p>
         * This accessor method returns a reference to the live list,
         * not a snapshot. Therefore any modification you make to the
         * returned list will be present inside the JAXB object.
         * This is why there is not a <CODE>set</CODE> method for the room property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getRoom().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link RoomCategoryEnum }
         * 
         * 
         */
        public List<RoomCategoryEnum> getRoom() {
            if (room == null) {
                room = new ArrayList<RoomCategoryEnum>();
            }
            return this.room;
        }

    }


    /**
     * <p>anonymous complex type的 Java 类。
     * 
     * <p>以下模式片段指定包含在此类中的预期内容。
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="ViewType" type="{http://rets.org/xsd/RETSCommons}ViewEnum" maxOccurs="unbounded"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "viewType"
    })
    public static class ViewTypes {

        @XmlElement(name = "ViewType", namespace = "http://rets.org/xsd/Syndication/2012-03", required = true)
        protected List<ViewEnum> viewType;

        /**
         * Gets the value of the viewType property.
         * 
         * <p>
         * This accessor method returns a reference to the live list,
         * not a snapshot. Therefore any modification you make to the
         * returned list will be present inside the JAXB object.
         * This is why there is not a <CODE>set</CODE> method for the viewType property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getViewType().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link ViewEnum }
         * 
         * 
         */
        public List<ViewEnum> getViewType() {
            if (viewType == null) {
                viewType = new ArrayList<ViewEnum>();
            }
            return this.viewType;
        }

    }

}
